<?php
/**
 * 微信群模型
 * @author 王勇程 <laughskydragon@qq.com>
 */

namespace app\common\model;

class WechatGroup extends ModelBase
{
    // 表名

    
    // 自动时间戳
    protected $autoWriteTimestamp = true;
    
    // 时间字段
    protected $createTime = 'create_time';
    protected $updateTime = 'update_time';
    
    // 字段类型转换
    protected $type = [
        'id' => 'integer',
        'member_count' => 'integer',
        'max_members' => 'integer',
        'is_active' => 'integer',
        'sort' => 'integer',
        'create_time' => 'integer',
        'update_time' => 'integer'
    ];
    
    /**
     * 获取创建时间格式化
     */
    public function getCreateTimeAttr($value)
    {
        return $value ? date('Y-m-d H:i:s', $value) : '';
    }
    
    /**
     * 获取更新时间格式化
     */
    public function getUpdateTimeAttr($value)
    {
        return $value ? date('Y-m-d H:i:s', $value) : '';
    }
    
    /**
     * 获取群成员状态
     */
    public function getMemberStatusAttr($value, $data)
    {
        $memberCount = $data['member_count'] ?? 0;
        $maxMembers = $data['max_members'] ?? 500;
        
        if ($memberCount >= $maxMembers) {
            return 'full';
        } elseif ($memberCount >= $maxMembers * 0.9) {
            return 'nearly_full';
        } else {
            return 'available';
        }
    }
    
    /**
     * 获取群成员状态文本
     */
    public function getMemberStatusTextAttr($value, $data)
    {
        $status = $this->getMemberStatusAttr($value, $data);
        $statusTexts = [
            'full' => '已满',
            'nearly_full' => '即将满员',
            'available' => '可加入'
        ];
        return $statusTexts[$status] ?? '未知';
    }
}